package _go

/*
187. 重复的DNA序列
难度
中等

283

收藏

分享
切换为英文
接收动态
反馈
所有 DNA 都由一系列缩写为 'A'，'C'，'G' 和 'T' 的核苷酸组成，例如："ACGAATTCCG"。在研究 DNA 时，识别 DNA 中的重复序列有时会对研究非常有帮助。

编写一个函数来找出所有目标子串，目标子串的长度为 10，且在 DNA 字符串 s 中出现次数超过一次。



示例 1：

输入：s = "AAAAACCCCCAAAAACCCCCCAAAAAGGGTTT"
输出：["AAAAACCCCC","CCCCCAAAAA"]
示例 2：

输入：s = "AAAAAAAAAAAAA"
输出：["AAAAAAAAAA"]
*/
func findRepeatedDnaSequences(s string) []string {

	n := len(s)
	if n <= 0 {
		return []string{}
	}

	//先都在外层
	waiceng := 0
	//tigert := 10 //目标长度
	res := []string{}
	//去重
	c := map[string]int{}
	for i := waiceng; i <= n-10; i++ {
		tmp1 := s[i : 10+i]
		c[tmp1]++
		if c[tmp1] == 2 {
			res = append(res, tmp1)
		}
	}
	return res
}
